Field of the Invention
The invention relates to image processing, and more particularly, to an image encoder system suitable for real-time image transmission.
Description of the Related Art
A discrete wavelet transform (DWT) is now extremely well-known and described in numerous image coding standards, such as JPEG2000, Dirac, and Microsoft's RemoteFX. One-dimensional (1D) DWT consists of the iterated application of a complementary pair of half-band filters 11 and 12 followed by subsampling by a factor 2, as illustrated in FIG. 1.
Regarding two-dimensional images, wavelet filters are normally applied in both vertical and horizontal directions to each image component to produce four sub-bands: LL(left-top), LH(left-bottom), HL(right-top) and HH(right-bottom). In the case of 2D DWT, only the LL sub-band is iteratively decomposed to obtain the decomposition of the two-dimensional spectrum as shown in FIG. 2.
FIG. 3 is a block diagram showing an exemplary wavelet image encoding system disclosed in U.S. Pat. No. 6,678,419. Referring to FIG. 3, image pixel data is provided to a wavelet transform block 31, which operates in a known manner to provide wavelet coefficients to a quantization block 32. Afterwards, the wavelet coefficients are scalar-quantized by a quantization block 32 to reduce the number of bits to represent them, at the expense of quality. The output of the quantization block 32 is a set of integer numbers which have to be encoded bit-by-bit. The parameter that can be changed to set the final quality is the quantization step; the greater the step, the greater the compression and the image quality become.
A reordering and blocking block 33 groups the output of the quantization block 32 into clusters of like values. It results in a clustering or grouping together of macroblocks of frequency coefficients which are most likely to be zero. The reordering increases the likelihood of groupings of similar data, in the sense that the data tends to have a monotonically decaying distribution of amplitudes. A lossless adaptive encoding block 34 receives the macroblocks and encodes them in a lossless manner. The clustering of the macroblocks provides data to compress which has large clusters of zeros. Further, reordering the data by encoding on a bit plane basis increases the likelihood of finding large strings of zeros. Starting with the most significant bit for the first bit plane leads to a higher likelihood of a long string of zeros. Further, this also ensures that the most relevant data is encoded first. By the time the third or fourth bit planes are encoded, the odds are about equal for a zero as opposed to a one, and straight binary encoding may be effectively used.
Most of all well known wavelet image coding systems use 2D wavelet transform to gain encoding efficiency, in other words, high compression ratio with a fixed quality. Some wavelet image coding systems use tile-based coding, that is, dividing an image into non-overlapped tiles. The tile size is typically 64×64 or larger. Hence, such coding systems typically require a DRAM subsystem to store source image pixels, intermediate processing data and a coded bit-stream.
However, some real-time image transmission systems expect a DRAM-less solution to reduce cost and system complexity. For example, a real-time image transmission system is applied in surveillance camera, which has a constant transmission rate and requests no DRAM if possible. Such DRAM-buffer-less real-time image transmission system could not afford 2D wavelet image encoding algorithm. Accordingly, there is a need for a real-time image encoding system having a good compression quality and operating without using a DRAM buffer.